Java 基础笔记1:数据类型

数据类型

Java中变量的数据类型分为两大类:

  • 基本数据类型
    • 整数类型:byte(占 1 Byte,取值范围 -128127),short(占 2 Byte,取值范围 -2^152^15-1),int (占 4 Byte 取值范围 -2^312^31-1),Long (占 8 Byte,取值范围 -2^632^63-1。需要使用 lL 标识符)
    • 浮点数类型:float(单精度浮点数,占 4 Byte,取值范围 -3.403E383.403E38,需要使用 fF 标识符),double(双精度浮点数,占 8 Byte,取值范围 -1.798E3081.798E308)
    • 字符类型:char(占 2 Byte,需要使用单引号)
    • 布尔类型:boolean(只有两个固定值 truefalse)
  • 引用数据类型
    • 数组:
      • 字符数组未初始化时,元素值是 int 的 0
      • 浮点型默认初始化的数据值为 浮点数 的 0.0
      • boolean 数组元素值为 false
      • 引用类型的初始化为 null,例如 String 类型数组
    • 接口
    • 枚举
    • 注解
    • 记录

基本数据类型运算

Java 的进行不同类型的基本运算时,会有两种转换可能性:

  • 自动类型提升(隐式转换),数值范围小的值与数据范围大的值运算,结果会转换为数据范围大的类型。在某些特殊场景下会转换为其他大数据值范围类型: byte、short 和 char 两两数据类型运算的结果类型是按照 int 类型处理
  • 强制类型转换,需要使用类型申明的方式,将数据类型处理,处理方式 类型 变量名 = (类型) 数据值/变量名。大数据值向小数据范围值类型转换时,可能存在 精度损失 或者 溢出 问题

其他的类型运算需要注意:

  • 任何类型数据和 String 进行加和运算都是拼接操作,结果是 String
  • String 类型不能直接通过强制类型转换的方式,转换为另一个数据类型

运算符

运算符和其他的便成语言类型,差异的点是 ++-- 两个运算符的变量位置会有不同的效果

  • b = a++b = a-- : 表示 b 先被赋予变量 a 的值,a 在进行加 1 或者减 1 的运算
  • b = ++ab = --a: 表示先对变量 a 进行加 1 或者减 1 的运算,再将变量 a 的值赋予 b
  • +=-=*=/=%= : 将符号左边的值右边的值进行运算操作,最后将结果赋值给左边的变量
  • instanceof:对象类型检查运算符,检查是否为其对象或其子类对象
  • &&&:两者都是逻辑与运算符,在符号前为逻辑真时都会继续执行符号右侧;差异点是当符号前为逻辑假时,前者会继续执行执行符号右侧,后者不会继续执行符号右侧
  • |||:两者都是逻辑或运算符,在符号前为逻辑假时都会继续执行符号右侧;差异点是当符号前为逻辑真时,前者会继续执行执行符号右侧,后者不会继续执行符号右侧
  • 条件运算符 (条件表达式) ? 表达式1 : 表达式2:表示的意思是条件表达式成立时执行表达式1否者执行表达式2
  • ==: 判断对象是否相同,某些条件下是判断值是否相同,此时可以考虑使用 equals 方法——例如 String 比较时,相同的内容但是对象可能是不相同的

    运算符优先级

运算符有不同的优先级,所谓优先级就是在表达式运算中的运算符顺序

优先级 运算符说明 Java运算符
1 括号 ()[]{}
2 正负号 +-
3 单元运算符 ++--~
4 乘法、除法、求余 */%
5 加法、减法 +-
6 移位运算符 <<>>>>>
7 关系运算符 <<=>=>instanceof
8 等价运算符 ==!=
9 按位与 &
10 按位异或 ^
11 按位或 `
12 条件与 &&
13 条件或 `
14 三元运算符 ? :
15 赋值运算符 =+=-=*=/=%=
16 位赋值运算符 &==<<=>>=>>>=
作者

ZenRay

发布于

2024-04-22

更新于

2024-04-22

许可协议

CC BY-NC-SA 4.0